1
תגובות
הדף הזה אף פעם לא נותן לצד לקוח תגובה של סיום
וזה למרות שהוא סיים את הטעינה שלו
כדי שבאמת הוא יסיים את הטעינה שלו אני צריך לסגור את הכרטיסייה ולעלות שחזור של הכרטיסיה שנסגרה ואז כשהדף עולה מקאש הצד לקוח מזהה שהדף סיים טעינה
ואני מתכוון שהדף באמת סיים את הטעינה ואפילו רואים בכלי פיתוח של כרום שהדף כבר לא מתעדכן כל 3 שניות וכבר החזיר את כל הפלט הסופי..
xmlhttp.readyState==4&&xmlhttp.status==200
וזה למרות שהוא סיים את הטעינה שלו
כדי שבאמת הוא יסיים את הטעינה שלו אני צריך לסגור את הכרטיסייה ולעלות שחזור של הכרטיסיה שנסגרה ואז כשהדף עולה מקאש הצד לקוח מזהה שהדף סיים טעינה
<?
header("Content-Type:text/xml;charset=utf-8");
$id=$_COOKIE['id'];
ignore_user_abort(true);
set_time_limit(0);
echo '<?xml version="1.0"?>'.str_repeat("\t",2025);
do
{
sleep(3);
print "\n";
flush();
ob_flush();
if(connection_status()!=0) die;
$re=mysql_fetch_row(mysql_query("SELECT p FROM hosts WHERE id=$id LIMIT 1"));
}
while($re[0]==0);
mysql_query("DELETE FROM hosts WHERE id=$id");
$p=mysql_fetch_row(mysql_query("SELECT name,img from users WHERE id=$re[0]"));
echo '<r><id>'.$re[0].'</id><n>'.$p[0].'</n><i>'.$p[1].'</i></r>';
ob_end_flush();
header("Content-Type:text/xml;charset=utf-8");
$id=$_COOKIE['id'];
ignore_user_abort(true);
set_time_limit(0);
echo '<?xml version="1.0"?>'.str_repeat("\t",2025);
do
{
sleep(3);
print "\n";
flush();
ob_flush();
if(connection_status()!=0) die;
$re=mysql_fetch_row(mysql_query("SELECT p FROM hosts WHERE id=$id LIMIT 1"));
}
while($re[0]==0);
mysql_query("DELETE FROM hosts WHERE id=$id");
$p=mysql_fetch_row(mysql_query("SELECT name,img from users WHERE id=$re[0]"));
echo '<r><id>'.$re[0].'</id><n>'.$p[0].'</n><i>'.$p[1].'</i></r>';
ob_end_flush();
ואני מתכוון שהדף באמת סיים את הטעינה ואפילו רואים בכלי פיתוח של כרום שהדף כבר לא מתעדכן כל 3 שניות וכבר החזיר את כל הפלט הסופי..
1 תשובות
הבעיה היא לא אם OB אלה עם איך שעובד HTTP.
כהנתונים מועברים חלק אחרי חלק ולא בבת אחת - השרת מחזיר תשובה ללקוח בחלקים
Content-Encoding: Chunked
כנראה מאיזה-שהי סיבה הדפדפן לא מצליח לזהות שהגיע הצ'אנק האחרון.
אולי במקרה שלך הסטטוס הוא לא 200?
תנסה לרשום לקונסול את הסטטוס והסטייט כשהם משתנים ותראה לאן זה מגיע בסיום הסקריפט.